home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / pmode / m32 / mouse.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1994-08-29  |  1.1 KB  |  88 lines

  1. #include <stdio.h>
  2. #include <dos.h>
  3. #include <stdlib.h>
  4. #include <conio.h>
  5.  
  6. extern "C" void setup (void);
  7. #define MOUSE() geninterrupt(0x33)
  8.  
  9. short myds;
  10. short mx, my, ms;
  11. unsigned char key;
  12.  
  13.  
  14. extern "C" void MouseHandler (void)
  15. {
  16.   mx = _CX;
  17.   my = _DX;
  18.   ms = _BX;
  19. }
  20.  
  21. int mReset(void)
  22. {
  23.   _AX = 0;
  24.   MOUSE();
  25.   if (_AX == 0xFFFF)
  26.     return _BX;
  27.  
  28.   return 0;
  29. }
  30.  
  31. void mShow(void)
  32. {
  33.   _AX = 1;
  34.   MOUSE();
  35. }
  36.  
  37. void mHide(void)
  38. {
  39.   _AX = 2;
  40.   MOUSE();
  41. }
  42.  
  43. void mSetHandler(int mask)
  44. {
  45.   _CX = mask;
  46.   setup ();
  47. }
  48.  
  49. #pragma argsused
  50. int main(int argc, char *argv[])
  51. {
  52.   int out = 0;
  53.   int x,y;
  54.   int status;
  55.  
  56.   myds = _DS;
  57.   if (mReset () == 0)
  58.   {
  59.     printf ("No mouse driver\n");
  60.     return 1;
  61.   }
  62.  
  63.   printf ("\n");
  64.   mShow();
  65.  
  66.   mSetHandler (127);
  67.  
  68.   _setcursortype (_NOCURSOR);
  69.   while (!out)
  70.   {
  71.     char c;
  72.     printf ("\r(%02d,%02d) - Button:%02X", mx/8,my/8,ms);
  73.     if (kbhit())
  74.     {
  75.       c = getch();
  76.       if (c == 27)
  77.         out = 1;
  78.       if (c == 0)
  79.         c = getch();
  80.     }
  81.   }
  82.   _setcursortype (_NORMALCURSOR);
  83.  
  84.   mHide();
  85.   mReset();
  86.  
  87.   return 0;
  88. }